clear;
clc;
% 获取用户输入
z_input = input('请输入一个复杂复数表达式：', 's');
flag = 0;
str_1 = "Ln";
str_2="ln";
if (contains(z_input, str_1))
    flag = 1;
    new_z_input=strrep(z_input,'Ln','log');
elseif(contains(z_input,str_2))
new_z_input=strrep(z_input,'ln','log');
else 
    new_z_input=z_input;
end
% 转换为符号表达式
z_sym = str2sym(new_z_input);

% 化简符号表达式
z_simplified = simplify(z_sym);

% 输出简化后的结果
disp('简化后的结果：');
fprintf('%s\n', char(z_simplified)); % 将符号转换为字符串并输出

% 计算实部和虚部
real_part = real(z_simplified);
imag_part = imag(z_simplified);

% 输出 a+bi 表示
disp('a+bi 形式表示的结果：');

if (flag)
    if imag_part >= 0
        fprintf('%g+%gi+2kπ\n', real_part, imag_part); % 输出正虚部
    else
        fprintf('%g%gi+2kπ\n', real_part, imag_part); % 输出负虚部
    end
else

if imag_part >= 0
    fprintf('%g+%gi\n', real_part, imag_part); % 输出正虚部
else
    fprintf('%g%gi\n', real_part, imag_part); % 输出负虚部
end

end
